home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / prog_bas / basicwnt.zip / MORTGAGE.BAS < prev    next >
BASIC Source File  |  1996-02-11  |  8KB  |  201 lines

  1. 1010 CLS:LOCATE 5,19:PRINT "IBM"
  2. 1020 LOCATE 7,12,0:PRINT "Personal Computer"
  3. 1030 LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
  4. 1040 LOCATE 11,9,0:PRINT CHR$(179)+"      MORTGAGE       "+CHR$(179)
  5. 1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
  6. 1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.21     "+CHR$(179)
  7. 1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
  8. 1071 LOCATE 16,5,0:PRINT "Modified to run under NitrousBasic"
  9. 1072 LOCATE 17,5,0:PRINT "      By Adrian J. Michaud"
  10. 1080 LOCATE 19,4,0:PRINT "(C) Copyright IBM Corp 1981, 1982"
  11. 1090 LOCATE 23,7,0:PRINT "Press space bar to continue"
  12. 1100 IF INKEY$ <> "" THEN GOTO 1100
  13. 1110 CMD$ = INKEY$
  14. 1120 IF CMD$ = " " THEN GOTO 1150
  15. 1130 IF CMD$ =CHR$(27) THEN GOTO 1210
  16. 1140 GOTO 1110
  17. 1150 CLS:DIM AMORT[501,3]
  18. 1154 rem
  19. 1155 rem 
  20. 1156 COLS=8
  21. 1158 rem
  22. 1160 GOSUB 1240
  23. 1170 IF ASC(I$)=27 THEN goto 1210
  24. 1180 IF MID$(I$,1,1)="2" THEN GOTO 2010
  25. 1190 IF MID$(I$,1,1)="1" THEN GOTO 1490
  26. 1200 GOTO 1160
  27. 1210 rem
  28. 1215 rem
  29. 1220 GOSUB 1470
  30. 1230 END
  31. 1240 REM
  32. 1250 CLS:PRINT " MORTGAGE ANALYSIS "
  33. 1260 LOCATE 3,1:PRINT "OPTIONS - "
  34. 1270 PRINT "1 - MORTGAGE PAYMENT COMPARISONS "
  35. 1280 PRINT "2 - MORTGAGE AMORTIZATION"
  36. 1290 PRINT "ESC KEY - EXIT"
  37. 1300 PRINT " "
  38. 1310 PRINT "OPTION NUMBER (1,2, OR ESC) =====>"
  39. 1330 PRINT " "
  40. 1340 rem
  41. 1350 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
  42. 1360 PRINT CHR$(179)+"  MORTGAGE PAYMENT COMPARISONS       "+CHR$(179)
  43. 1370 PRINT CHR$(179)+"    - USE THIS OPTION TO COMPARE     "+CHR$(179)
  44. 1380 PRINT CHR$(179)+"      THE MONTHLY PAYMENTS OF        "+CHR$(179)
  45. 1390 PRINT CHR$(179)+"      MORTGAGES AT VARIOUS RATES     "+CHR$(179)
  46. 1400 PRINT CHR$(179)+"      AND PRINCIPAL AMOUNTS.         "+CHR$(179)
  47. 1410 PRINT CHR$(179)+"  MORTGAGE AMORTIZATION              "+CHR$(179)
  48. 1420 PRINT CHR$(179)+"    - USE THIS OPTION TO CALCULATE   "+CHR$(179)
  49. 1430 PRINT CHR$(179)+"      THE PRINCIPAL AND INTEREST     "+CHR$(179)
  50. 1440 PRINT CHR$(179)+"      PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
  51. 1450 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
  52. 1460 LOCATE 8,37:PRINT " ":LOCATE 8,37
  53. 1461 I$=INKEY$:IF I$="" THEN goto 1461
  54. 1462 PRINT I$;:RETURN
  55. 1470 CLS:END
  56. 1480 PF = AF*(RF/(1-(1/((1+RF)^NF)))):return
  57. 1490 REM
  58. 1500 CLS:PRINT " MORTGAGE PAYMENT COMPARISON PROGRAM "
  59. 1510 LOCATE 10,1
  60. 1520 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
  61. 1530 PRINT CHR$(179)+"  MORTGAGE PAYMENT COMPARISONS       "+CHR$(179)
  62. 1540 PRINT CHR$(179)+"    - USE THIS OPTION TO COMPARE     "+CHR$(179)
  63. 1550 PRINT CHR$(179)+"      THE MONTHLY PAYMENTS OF        "+CHR$(179)
  64. 1560 PRINT CHR$(179)+"      MORTGAGES AT VARIOUS RATES     "+CHR$(179)
  65. 1570 PRINT CHR$(179)+"      AND PRINCIPAL AMOUNTS.         "+CHR$(179)
  66. 1580 PRINT CHR$(179)+"                                     "+CHR$(179)
  67. 1590 PRINT CHR$(179)+"  NOTE: TO SELECT A VALUE OR AMOUNT  "+CHR$(179)
  68. 1600 PRINT CHR$(179)+"      ENTER THE APPROPRIATE VALUE    "+CHR$(179)
  69. 1610 PRINT CHR$(179)+"      AND PRESS THE ENTER KEY.       "+CHR$(179)
  70. 1620 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
  71. 1625 LOCATE 3,1:PRINT SPC(39);:PRINT "(1 TO 1000000 DOLLARS)";
  72. 1630 LOCATE 3,1:INPUT "ENTER BASE MORTGAGE AMOUNT ===> ",A$
  73. 1640 A = VAL(A$):IF (A < 1 OR A > 100000) THEN goto 1625
  74. 1650 AINC = 2000
  75. 1660 LOCATE 4,1:PRINT SPC(38);
  76. 1670 LOCATE 5,1:PRINT "(1 TO 35 PERCENT)";
  77. 1680 LOCATE 4,1:INPUT "ENTER BASE INTEREST RATE =====> ",IR$
  78. 1690 RR = VAL(IR$):IF RR>35 OR RR<1 THEN GOTO 1660
  79. 1700 R = RR/1200:RINC = .0025/12
  80. 1710 LOCATE 5,1:PRINT SPC(38);
  81. 1720 LOCATE 6,1:PRINT "(1 TO 35 YEARS)";
  82. 1730 LOCATE 5,1:INPUT "ENTER NUMBER OF YEARS IN MTG => ",Y$
  83. 1740 Y = VAL(Y$)
  84. 1750 N = Y * 12
  85. 1760 NF = N
  86. 1770 IF NF>420 OR NF<1 THEN GOTO 1710
  87. 1780 CLS
  88. 1790 PRINT " MONTHLY MORTGAGE PAYMENT COMPARISONS "
  89. 1800 LOCATE 3,10:PRINT Y$+"-YEAR MORTGAGE LOAN AMOUNTS";
  90. 1810 LOCATE 5,2:PRINT "RATES";
  91. 1820 FOR I = 0 TO COLS
  92. 1830 LOCATE 4,9+I*8:PRINT SPC(7):LOCATE 4,9+I*8:PRINT A+I*AINC
  93. 1840 NEXT I
  94. 1850 FOR I = 0 TO 14
  95. 1860 LOCATE 6+I,1:PRINT SPC(7):LOCATE 6+I,2
  96. 1870 PRINT INT(((R+(I*RINC))*120000)+.5)/100
  97. 1880 NEXT I
  98. 1890 rem
  99. 1900 FOR I = 0 TO 14
  100. 1910 RF = R+I*RINC:AF=1:GOSUB 1480
  101. 1920 FOR J = 0 TO COLS
  102. 1930 P = PF*(A+J*AINC):P = ((P+0.005)*100)/100
  103. 1935 IF P>10000 THEN LOCATE 22,1:PRINT "PAYMENTS TOO LARGE TO DISPLAY":GOTO 1980
  104. 1940 LOCATE 6+I,9+J*8:PRINT P;
  105. 1950 NEXT J
  106. 1960 NEXT I
  107. 1970 PRINT " "
  108. 1980 PRINT "PRESS SPACE BAR TO CONTINUE:";
  109. 1990 IF INKEY$ <> " " THEN GOTO 1990
  110. 2000 GOTO 1160
  111. 2010 REM
  112. 2020 rem
  113. 2030 CLS
  114. 2040 rem
  115. 2050 LOCATE 1,1
  116. 2060 PRINT " MORTGAGE AMORTIZATION PROGRAM "
  117. 2070 LOCATE 10,1
  118. 2080 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
  119. 2090 PRINT CHR$(179)+"  MORTGAGE AMORTIZATION              "+CHR$(179)
  120. 2100 PRINT CHR$(179)+"    - USE THIS OPTION TO CALCULATE   "+CHR$(179)
  121. 2110 PRINT CHR$(179)+"      THE PRINCIPAL AND INTEREST     "+CHR$(179)
  122. 2120 PRINT CHR$(179)+"      PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
  123. 2130 PRINT CHR$(179)+"                                     "+CHR$(179)
  124. 2140 PRINT CHR$(179)+"  NOTE: TO SELECT A VALUE OR AMOUNT  "+CHR$(179)
  125. 2150 PRINT CHR$(179)+"      ENTER THE APPROPRIATE VALUE    "+CHR$(179)
  126. 2160 PRINT CHR$(179)+"      AND PRESS THE ENTER KEY.       "+CHR$(179)
  127. 2170 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
  128. 2175 LOCATE 3,1: PRINT SPC(39):PRINT "(1 TO 10000000 DOLLARS)";
  129. 2180 LOCATE 3,1
  130. 2190 INPUT "ENTER MORTGAGE AMOUNT ===> ",A$
  131. 2200 AF = VAL(A$): IF (AF < 1 OR AF > 100000) THEN goto 2175
  132. 2210 LOCATE 4,1
  133. 2220 PRINT "                                      ";
  134. 2230 LOCATE 5,1
  135. 2240 PRINT "(1 TO 35 PERCENT)";
  136. 2250 LOCATE 4,1
  137. 2260 INPUT "ENTER INTEREST RATE =====> ",IR$
  138. 2270 RR = VAL(IR$)
  139. 2280 IF RR>35 THEN GOTO 2210
  140. 2290 IF RR<1 THEN GOTO 2210
  141. 2300 RF = RR/1200
  142. 2310 LOCATE 5,1
  143. 2320 PRINT "                                      ";
  144. 2330 LOCATE 6,1
  145. 2340 PRINT "(1 TO 35 YEARS)";
  146. 2350 LOCATE 5,1
  147. 2360 INPUT "ENTER NUMBER OF YEARS ===> ",Y$
  148. 2370 Y = VAL(Y$)
  149. 2380 NF = Y * 12
  150. 2390 IF NF>420 THEN GOTO 2310
  151. 2400 IF NF<1 THEN GOTO 2310
  152. 2410 GOSUB 1480
  153. 2420 PF = ((PF+0.005)*100)/100: PF1 =INT((PF+0.005)*100)/100:
  154. 2430 PRINT "MONTHLY PAYMENTS ARE ====> ";PF1
  155. 2435 rem
  156. 2440 PRINT "CALCULATING AMORTIZATION"
  157. 2445 rem
  158. 2450 IF NF>36 THEN GOTO 2470
  159. 2460 FOR I = 1 TO 1000:NEXT I
  160. 2470 AMORT[0,1] = AF
  161. 2480 FOR I = 1 TO NF
  162. 2490 AMORT[I,2] = ((AMORT[I-1,1]*RF+0.005)*100)/100
  163. 2500 AMORT[I,1] = AMORT[I-1,1]-PF+AMORT[I,2]
  164. 2510 NEXT I
  165. 2520 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(79);:NEXT I
  166. 2530 LOCATE 9,1
  167. 2540 PRINT " - 1 TO "+STR$(NF)
  168. 2550 PRINT " - 0 TO END AMORTIZATION";
  169. 2560 LOCATE 7,1
  170. 2570 PRINT "ENTER BEGINNING PAYMENT NUMBER"
  171. 2580 INPUT "OF 12 MONTH PERIOD ======> ",PERIOD$
  172. 2590 PD= VAL(PERIOD$)
  173. 2600 IF PD <> 0 THEN GOTO 2620
  174. 2610 IF PERIOD$ <> "0" THEN GOTO 2560
  175. 2620 IF PD=0 THEN GOTO 1160
  176. 2630 IF PD>NF THEN GOTO 2560
  177. 2640 IF PD<0 THEN GOTO 2560
  178. 2650 LOCATE 7,1
  179. 2660 PRINT SPC(39)
  180. 2670 PRINT SPC(39)
  181. 2680 LOCATE 9,1
  182. 2690 PRINT "PYMNT";chr$(9);"PRINL";chr$(9);chr$(9);"INTEREST";chr$(9);"BALANCE"
  183. 2700 TINT = 0
  184. 2710 FOR I = PD TO PD+11
  185. 2711 IF I> NF THEN GOTO 2750
  186. 2720 TINT = TINT + AMORT[I,2]
  187. 2730 PRINT I;chr$(9);
  188. 2740 PRINT ABS(PF1-AMORT[I,2]);chr$(9);chr$(9);AMORT[I,2];chr$(9);chr$(9);AMORT[I,1]
  189. 2750 NEXT I
  190. 2760 PRINT " "
  191. 2770 PRINT "INTEREST FOR 12 PERIODS =";
  192. 2780 PRINT " ";TINT
  193. 2790 LOCATE 25,1
  194. 2800 PRINT "PRESS SPACE BAR TO CONTINUE:";
  195. 2810 rem
  196. 2820 IF INKEY$ <> "" THEN GOTO 2820
  197. 2830 CMD$ = INKEY$
  198. 2840 IF CMD$ = " " THEN GOTO 2520
  199. 2850 IF CMD$ =CHR$(27) THEN GOTO 1210
  200. 2860 GOTO 2830
  201.